<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <style>
    .g-app {
      margin: 0 auto;
    }
  </style>
  <body>
    <div class="g-app">
      <h2>防抖:延迟执行，只执行最后一次触发的事件处理函数。</h2>
      <input class="input" type="text" />
    </div>
    <script>
      // 获取元素
      const input = document.getElementsByClassName("input")[0];

      // 定义防抖函数
      function debounce(fn, delay) {
        console.log('我执行了')
        let timer;
        return function (...args) {
          clearTimeout(timer)
          timer = setTimeout(()=> {
            fn.apply(this, [...args])
          },1000)
        }
      }

      // 定义输入时的逻辑函数
      function fn(e) {
        console.log("我是输入时的逻辑代码", e.target.value);
      }

      // 添加监听事件
      input.addEventListener("input", debounce((e) => {
        fn(e);
      }, 1000));
    </script>
  </body>
</html>
